home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-09-21 | 1.0 KB | 59 lines | [TEXT/PJMM] |
- UNIT StackStuff;
-
- INTERFACE
-
- CONST
- MAXIMUM_STACK_SIZE = 512;
-
- TYPE
- StackDataType = longint;
-
- StackType = RECORD
-
- size : integer;
-
- data : ARRAY[1..MAXIMUM_STACK_SIZE] OF StackDataType;
-
- END;
-
- PROCEDURE StackInitialize (VAR theStack : StackType);
- PROCEDURE StackPush (VAR theStack : StackType;
- data : StackDataType);
- FUNCTION StackPop (VAR theStack : StackType) : StackDataType;
- FUNCTION StackEmpty (theStack : StackType) : boolean;
-
-
- IMPLEMENTATION
-
- PROCEDURE StackInitialize; { (var theStack : StackType)}
- BEGIN
- theStack.size := 0;
- END;
-
- PROCEDURE StackPush;
- { (var theStack : StackType;}
- { data : StackDataType );}
- BEGIN
-
- theStack.size := theStack.size + 1;
-
- theStack.data[theStack.size] := data;
-
- END;
-
-
- FUNCTION StackPop;{ (var theStack : StackType) : StackDataType;}
- BEGIN
-
- StackPop := theStack.data[theStack.size];
-
- theStack.size := theStack.size - 1;
-
- END;
-
- FUNCTION StackEmpty;{ (theStack : StackType) : boolean;}
- BEGIN
- StackEmpty := NOT (theStack.size > 0);
- END;
-
- END.